package com.ruoyi.business.mapper;

import java.util.List;
import com.ruoyi.business.domain.JtPurchaseInboundOrder;
import com.ruoyi.business.domain.JtPurchaseInboundOrderItem;

/**
 * 采购入库单Mapper接口
 * 
 * @author Alan Zhang
 * @date 2025-03-29
 */
public interface JtPurchaseInboundOrderMapper 
{
    /**
     * 查询采购入库单
     * 
     * @param inboundOrderId 采购入库单主键
     * @return 采购入库单
     */
    public JtPurchaseInboundOrder selectJtPurchaseInboundOrderByInboundOrderId(Long inboundOrderId);

    /**
     * 查询采购入库单列表
     * 
     * @param jtPurchaseInboundOrder 采购入库单
     * @return 采购入库单集合
     */
    public List<JtPurchaseInboundOrder> selectJtPurchaseInboundOrderList(JtPurchaseInboundOrder jtPurchaseInboundOrder);

    /**
     * 新增采购入库单
     * 
     * @param jtPurchaseInboundOrder 采购入库单
     * @return 结果
     */
    public int insertJtPurchaseInboundOrder(JtPurchaseInboundOrder jtPurchaseInboundOrder);

    /**
     * 修改采购入库单
     * 
     * @param jtPurchaseInboundOrder 采购入库单
     * @return 结果
     */
    public int updateJtPurchaseInboundOrder(JtPurchaseInboundOrder jtPurchaseInboundOrder);

    /**
     * 删除采购入库单
     * 
     * @param inboundOrderId 采购入库单主键
     * @return 结果
     */
    public int deleteJtPurchaseInboundOrderByInboundOrderId(Long inboundOrderId);

    /**
     * 批量删除采购入库单
     * 
     * @param inboundOrderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteJtPurchaseInboundOrderByInboundOrderIds(String[] inboundOrderIds);

    /**
     * 批量删除采购入库单明细
     * 
     * @param inboundOrderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteJtPurchaseInboundOrderItemByInboundOrderIds(String[] inboundOrderIds);
    
    /**
     * 批量新增采购入库单明细
     * 
     * @param jtPurchaseInboundOrderItemList 采购入库单明细列表
     * @return 结果
     */
    public int batchJtPurchaseInboundOrderItem(List<JtPurchaseInboundOrderItem> jtPurchaseInboundOrderItemList);

    /**
     * 更新 明细
     * @param inboundOrderItem
     * @return
     */
    public int updateJtPurchaseInboundOrderItem(JtPurchaseInboundOrderItem inboundOrderItem);

    /**
     * 通过采购入库单主键删除采购入库单明细信息
     * 
     * @param inboundOrderId 采购入库单ID
     * @return 结果
     */
    public int deleteJtPurchaseInboundOrderItemByInboundOrderId(Long inboundOrderId);


    /**
     *  通过采购 明细入库 单主键删除采购入库单明细信息
     * @param inboundItemIds
     * @return
     */
    public int deleteJtPurchaseInboundOrderItemByInboundItemIds(String[] inboundItemIds);

    /**
     * 取消
     * @param inboundItemIds
     * @return
     */
    public int updateJtPurchaseInboundOrderCancelStatus(String[] inboundItemIds);
}
